package com.alm.handle.service;

import com.alm.common.core.domain.AjaxResult;
import com.alm.entity.DevLogin;
import com.alm.entity.PasingByteModel;
import com.alm.handle.core.domain.entity.SysDevInfo;
import com.alm.handle.core.domain.entity.rq.EditIsTopRQ;
import com.alm.handle.core.domain.entity.rq.GetWayInfoRq;
import com.alm.handle.core.domain.entity.rq.ModeChangeRq;
import com.alm.handle.core.domain.entity.rq.SysDevInfoDevRq;
import com.alm.handle.core.domain.entity.rs.DevInfoPageRs;
import com.alm.handle.core.domain.entity.vo.DevOnlineMacVO;

import java.util.List;

public interface ISysDevInfoService {


    List<DevInfoPageRs> selectDevInfoList(SysDevInfoDevRq rq);

    List<SysDevInfo> selectDevInfoList();
    /**
     *
     * @param header
     * @return
     */
    int insertDevInfo(PasingByteModel.Header header, DevLogin devLogin);

    /**
     *
     * @param devId
     * @param version
     * @return
     */
    int updateVersion(String devId,String version);

    /**
     *
     * @param devId
     * @param bindName
     * @return
     */
    int bindName(String devId,String bindName);


    int updateDevInfo(SysDevInfo sysDevInfo);

    /**
     *
     * @param devId
     * @return
     */
    SysDevInfo getDeviceInfo(String devId);


    /**
     *
     * @param devid
     */
    void updateSaveHisByCache(String devid);

    /**
     *
     * @param devid
     */
    void  updataStatus(String devid);

    /**
     *
     * @param getWayInfoRq
     * @return
     * @throws Exception
     */
    List<SysDevInfo> queryListByRq(GetWayInfoRq getWayInfoRq );

    /**
     * 获取在线设备mac地址的下拉框
     * @return
     */
    List<DevOnlineMacVO> getOnlineMac();

    /**
     * 首页模式切换接口
     * @param rq
     * @return
     */
    AjaxResult changepollingMode(ModeChangeRq rq);

    /**
     * 是否置顶
     * @return
     */
    int editIsTop(EditIsTopRQ rq);

    /**
     * 设置是否设置过设备分组任务状态
     * @author: 詹泽峰
     * @date: 2024/8/26 17:40
     * @param hasGroupCron
     * @return int
     */
    void updateHasGroupCron(String devId, Boolean hasGroupCron);

}
